6.18 --continue - 加载最近的对话

6 分钟阅读

概述#

--continue 标志允许您加载并继续最近的对话会话。这是快速恢复工作的便捷方式,无需记住会话 ID。

基本语法#

bash
claude --continue

使用场景#

1. 快速恢复工作#

bash
# 快速恢复最近的对话 claude --continue # 继续之前的工作

2. 中断后继续#

bash
# 工作中断后,快速恢复 claude --continue # 继续之前的任务

3. 日常开发#

bash
# 每天开始工作时,恢复昨天的对话 claude --continue # 继续开发

4. 快速回顾#

bash
# 快速回顾最近的对话 claude --continue # 查看上下文

高级用法#

1. 与其他标志组合#

bash
# 继续对话 + 指定模型 claude --continue --model opus # 继续对话 + 自定义系统提示 claude --continue --system-prompt "你是一位 Python 专家" # 继续对话 + 限制工具 claude --continue --allowedTools "Read" "Grep"

2. 检查最近的会话#

bash
#!/bin/bash # check-recent-session.sh # 查看最近的会话 claude --list-sessions | head -1 # 继续最近的会话 claude --continue

3. 条件继续#

bash
#!/bin/bash # conditional-continue.sh # 检查是否有最近的会话 RECENT_SESSION=$(claude --list-sessions | head -1) if [ -n "$RECENT_SESSION" ]; then echo "继续最近的会话: $RECENT_SESSION" claude --continue else echo "没有最近的会话,创建新会话" claude --session-id "new-session-$(date +%Y%m%d-%H%M%S)" fi

4. 自动恢复工作流#

bash
#!/bin/bash # auto-resume-workflow.sh # 检查工作目录 if [ -f ".claude/session" ]; then SESSION_ID=$(cat .claude/session) echo "恢复会话: $SESSION_ID" claude --resume "$SESSION_ID" else echo "继续最近的会话" claude --continue fi

实际应用示例#

示例 1: 日常开发流程#

bash
#!/bin/bash # daily-dev-flow.sh # 检查是否有项目特定的会话 if [ -f ".claude/project-session" ]; then PROJECT_SESSION=$(cat .claude/project-session) echo "恢复项目会话: $PROJECT_SESSION" claude --resume "$PROJECT_SESSION" else echo "继续最近的会话" claude --continue fi

示例 2: 多项目工作流#

bash
#!/bin/bash # multi-project-flow.sh PROJECT=$1 # 检查项目会话 if [ -f ".claude/$PROJECT-session" ]; then SESSION_ID=$(cat ".claude/$PROJECT-session") echo "恢复项目 $PROJECT 的会话" claude --resume "$SESSION_ID" else echo "继续最近的会话" claude --continue fi

示例 3: 任务切换#

bash
#!/bin/bash # task-switching.sh # 保存当前会话 CURRENT_SESSION=$(claude --list-sessions | head -1) echo "$CURRENT_SESSION" > .claude/last-session # 切换到新任务 NEW_TASK=$1 claude --session-id "task-$NEW_TASK-$(date +%Y%m%d-%H%M%S)" # 稍后可以恢复之前的会话 # claude --resume $(cat .claude/last-session)

示例 4: 工作日志#

bash
#!/bin/bash # work-log.sh LOG_FILE="work-log-$(date +%Y%m%d).log" # 记录开始工作 echo "$(date): 开始工作" >> "$LOG_FILE" # 继续最近的会话 RECENT_SESSION=$(claude --list-sessions | head -1) echo "$(date): 恢复会话 $RECENT_SESSION" >> "$LOG_FILE" claude --continue # 记录结束工作 echo "$(date): 结束工作" >> "$LOG_FILE"

与 --resume 的区别#

标志行为使用场景
--continue加载最近的会话快速恢复工作
--resume <ID>加载指定的会话恢复特定会话

使用建议#

bash
# 快速恢复工作 claude --continue # 恢复特定会话 claude --resume session-abc123 # 查看会话列表后选择 claude --list-sessions claude --resume chosen-session

会话管理技巧#

1. 定期清理#

bash
#!/bin/bash # cleanup-sessions.sh # 保留最近 10 个会话 claude --list-sessions | tail -n +11 | while read session; do claude --delete-session "$session" done echo "旧会话已清理"

2. 会话标记#

bash
#!/bin/bash # mark-session.sh MARK=$1 # 标记最近的会话 RECENT_SESSION=$(claude --list-sessions | head -1) echo "$RECENT_SESSION" > ".claude/marked-$MARK" echo "会话 $RECENT_SESSION 已标记为 $MARK"

3. 会话切换#

bash
#!/bin/bash # switch-session.sh # 保存当前会话 CURRENT_SESSION=$(claude --list-sessions | head -1) echo "$CURRENT_SESSION" > .claude/last-session # 切换到标记的会话 MARK=$1 if [ -f ".claude/marked-$MARK" ]; then SESSION_ID=$(cat ".claude/marked-$MARK") claude --resume "$SESSION_ID" else echo "没有找到标记为 $MARK 的会话" fi

4. 会话历史#

bash
#!/bin/bash # session-history.sh # 显示会话历史 echo "会话历史:" claude --list-sessions | nl # 继续最近的会话 echo "" echo "继续最近的会话?(y/n)" read answer if [ "$answer" = "y" ]; then claude --continue fi

常见问题#

Q1: --continue 和 --resume 有什么区别?#

A: --continue 自动加载最近的会话,--resume 需要指定会话 ID。

Q2: 如何知道最近的会话是什么?#

A: 使用 claude --list-sessions 查看会话列表,第一个就是最近的会话。

Q3: 可以继续几天前的会话吗?#

A: --continue 只能继续最近的会话。要继续其他会话,使用 --resume <会话ID>

Q4: 会话会自动保存吗?#

A: 是的。会话会自动保存,除非显式删除。

Q5: 如何避免意外继续错误的会话?#

A: 使用 --resume <会话ID> 明确指定要恢复的会话。

与其他标志的组合示例#

1. 完整的工作流程#

bash
#!/bin/bash # complete-workflow.sh # 检查是否有项目会话 if [ -f ".claude/project-session" ]; then SESSION_ID=$(cat .claude/project-session) echo "恢复项目会话" claude --resume "$SESSION_ID" else echo "继续最近的会话" claude --continue fi

2. 多项目切换#

bash
#!/bin/bash # multi-project-switch.sh PROJECT=$1 # 保存当前会话 CURRENT_SESSION=$(claude --list-sessions | head -1) echo "$CURRENT_SESSION" > .claude/last-session # 切换到项目会话 if [ -f ".claude/$PROJECT-session" ]; then SESSION_ID=$(cat ".claude/$PROJECT-session") claude --resume "$SESSION_ID" else echo "没有找到项目 $PROJECT 的会话,继续最近的会话" claude --continue fi

3. 任务跟踪#

bash
#!/bin/bash # task-tracking.sh TASK=$1 # 记录任务开始 echo "$(date): 开始任务 $TASK" >> task-log.txt # 继续最近的会话 claude --continue # 记录任务结束 echo "$(date): 结束任务 $TASK" >> task-log.txt

标记本节教程为已读

记录您的学习进度,方便后续查看。